LinuC-1 - 102試験 - 1.09:重要なシステムサービス - 1.09.3 メール配送エージェント(MTA)の基本

Last Update : August 21 2022 17:47:13

     

a. メール配送の仕組み

基本的に現在のメールシステムは、 クライアント から サーバー 、及びサーバーからサーバーへのメールの送信を担う MTA (mail transfer agent:メール転送エージェント、または送信メールサーバーとも呼ばれます。)という アプリケーション が中心となって動作します。

MTAの最も重要な仕事は世界中の他のMTAとの連携にあります。従ってできるだけ特別な振る舞いをしないことが望ましいので、 UNIX 系の OS 上では、安定性と動作実績のある Sendmail 、 Postfix 、 qmail 、exim のいずれかの アプリケーション が利用の大部分を占めます。

MTAによって最寄りのサーバーまで転送されたメールは、サーバー内で MDA (Mail Delivery Agent:メール配送エージェント。)によって適切な場所(メールボックス)に保存され、サーバーはクライアントからの受信要求を待ちます。

サーバーに蓄えられたメールは、 MUA (mail user agent:クライアントのメール送受信アプリケーション)からの要求に答えて、 MRA (mail retrieval agent:メール取得エージェント、または受信メールサーバーとも呼ばれます。)によってMUAの元に届けられることになります。

MRAは、サーバーに蓄えられたメールをクライアントのMUAとを結びつけるもので、MUAへのメールの ダウンロード が基本動作になる POPサーバーと、 MUAとサーバー間でメールデータの同期を行う動作を基本とした IMAPサーバー の二種類があります。

メールシステムはこのように複数のサブシステムが組み合わされる形になっています。
一般に MDA の仕事は MTA と MRA の連携で賄われるケースが多く、実体として存在しないのが普通です。


MTA 】 (mail transfer agent)

SMTP を利用して MUA から サーバー へ、更にサーバーから他のサーバーへメールを転送する役目を担うものを指します。
メール配送を行う場合、SMTP プロトコルで行われるため、SMTPサーバーとも呼ばれます。
代表的なものとして、sendmail、Postfix、qmail、exim などがあります。

MDA 】 (Mail Delivery Agent)

メール転送エージェント(MTA)によって受け取った電子メールを受信者に配送する機能。

MRA 】 (mail retrieval agent)

主に POP や IMAP を利用して、 サーバー から MUA へメールデータを転送したり、同期したりする役目を担うものを指します。
MUAがメールボックスからメールを読み出すときに接続するプログラムのこと。メールボックスからメールを取り出す(retrieve)プログラムである。実態は「メール受信サーバ」のこと。MUAとMRA間のプロトコルとしては、POP3やIMAP4が多く使われている。

MUA 】 (mail user agent)

主に クライアント 用途で、 メールサーバー とメールを送受信を行い、メールの整理などを行う機能をもった アプリケーション を指します。
メールを送受信するために利用するメールクライアントソフトウェアのことを言います。

MSA 】 (mail user agent)

MUAがメールを送るときに接続するシステム。プロバイダと契約すると連絡される「送信メールサーバ」がこれ。昔はMUAは直接MTA(後述)に接続してメールを送ると扱われていたのだが、悪党がごみメールをばら撒きすぎたので外部にメールを中継するMTAの前に、プロバイダ内部からのメール送信を受け付けるMSAをおくというモデルに変化しつつある。このとき、MSAはユーザの情報を持っているプロバイダに設置されるということから、ユーザ認証をここで行った上でメールを外に出すようにするのが望ましい。MUA-MSA間の認証方法として代表的なものはSMTP AUTHや POP before SMTPがある。SMTP AUTHはMUAが対応している必要があるが、POP before SMTPはたいていのMUAで利用可能。


b. メール転送とエイリアス

あるメールアドレスに届いたメールを別のメールアドレスで確認したい場合は、メール転送かエイリアスを設定することでできます。
メール転送は、各ユーザーのホームディレクトリに .forward ファイルを用意することで可能です。 エイリアスの登録は、/etc/aliases ファイルに登録することで可能です。

1.メール転送

届いたメールを自動的に転送するには、ホームディレクトリに .forward ファイルを作成し、そのファイルに転送先のメールアドレスを書いておけば、自動的にそのメールアドレスに転送されます。

sakuraあてのメールをkaedeに転送する.forwardの例

kaede@serv.click-rescue.com  <---kaedeのメールアドレスへ転送 ¥sakura  <---sakuraのメールボックスにも置いておく

「¥」は、自分自身にメールがループされないようにするためのもので必ず記述します。 なお、.forwardのパーミッションは「 600 」に設定します。


2.メールエイリアス

メールエイリアスとは、通常使うメールアドレス以外に複数のメールアドレスを同じユーザーに割り当てることを指します。 ただ、メールエイリアスは単なる別名で、ニックネームのようなものですので、実際にメールサーバー内にメールボックスがあるわけではありません。 メールエイリアスは、既存のメールアドレスを参照する代替メールアドレスです。たとえば、実際のメールアドレスが sakura@serv.click-rescue.com であるユーザーが、cherry@serv.click-rescue.com 宛のメールも受信したい場合、cherry@serv.click-rescue.com を sakura@serv.click-rescue.com のメールエイリアスとして作成すると、両方のアドレスのメールが sakura@serv.click-rescue.com のメールボックスに配信されます。 エイリアスは、/etc/aliases ファイルに記述します。

cherryあてのメールをsakuraで確認する場合の /etc/aliases の例
cherry:  sakura  

複数人の場合は、コンマで区切って並べます。

/etc/aliases ファイルを編集したら、newaliases コマンドを実行します。

# newaliases

newaliases コマンドは /etc/aliases ファイルの内容をもとに、MTAが実際に参照するエイリアスデータベースファイルの /etc/aliases.db を更新します。


c. メールキューの操作

通常メールはすぐに配送されますが、一時的に送信先サーバへの接続ができなかったり、サーバの負荷が高かったりした場合、メールはすぐに送信されずにメールキューに一旦たまります。メールは通常/var/spool/mqueueのメールキューに保存されます。どのようなメールがキューに溜まっているかは mailq コマンドにて確認できます。これらのキューは通常一定時間後に再配送を試みます。

# mailq


z. 出題範囲概要

概要 :
  • 一般的に使用可能なMTAプログラムについて概要を理解し、ホストで配送とエイリアスの基本的な設定を行える。その他の設定ファイルについては対象外となる。

詳細 :
  • 電子メールのエイリアスを作成する。
    /etc/aliases, newaliases
  • 電子メールの配送設定をする。
    ~/.forward, mail, mailq
  • 一般的に使用可能なMTAプログラムについて知っている(設定は含まない)。
    postfix, exim

  [ 例題 ] 


         

    www.it-shikaku.jp